package com.ruoyi.datastatistics.domain.recvdata;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.ToString;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * @author TsingYu
 * @version 1.0
 * @date 2025/2/19 15:53
 */
@Data
public class RecvDataDb {
    /**
     * 数据类型，1：实时、2：历史
     */
    private String dataType;
    /**
     * 设备编号
     */
    private String deviceNumber;
    /**
     * 设备厂家
     */
    private String manufacturer;
    /**
     * 客户id（对应集抄tenantId）
     */
    private String clientId;

    private DbData realtimeData;

    private List<DbData> historyData;

    @Data
    @ToString
    public static class DbData{
        /**
         * 平台表单自增主键
         */
        private Long id;
        /**
         * 设备编号
         */
        private String terminalId;
        /**
         * 位置识别编号
         */
        private String locationNb;
        /**
         * 租户ID
         */
        private String tenantId;
        /**
         * 累计流量
         */
        private BigDecimal totalFlow;
        /**
         * 正向读数
         */
        private BigDecimal readNumber;
        /**
         * 反向读数
         */
        private BigDecimal reverseNumber;
        /**
         * 瞬时流量
         */
        private BigDecimal instantNumber;
        /**
         * 瞬时流速
         */
        private BigDecimal instantVelocity;
        /**
         * 管网压力
         */
        private BigDecimal pressure;
        /**
         * 终端电压
         */
        private BigDecimal terminalVol;
        /**
         * 终端信号强度
         */
        private Integer terminalCsq;
        /**
         * 信号描述
         */
        private String terminalCsqDescribe;
        /**
         * 阀门状态
         */
        private Integer valveState;

        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        private Date createTime;
        /**
         * 抄表时间
         */
        @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        private Date readDate;
        /**
         * 数据同步状态，1未同步、2已同步、3同步失败
         */
        private String syncStatus;
    }


}
